<?php
/**
 * Description of class
 *
 * @author Márlon
 */
class AlunosMatriculados 
{
    function __construct()
    {
        require_once '../classes/class.ConexaoBD.php';
    }
    
    function ListarSolicitacaoInscricoes($pCurso, $pDataIni, $pDataFim)
    {
        $ClsBD = new ConexaoBD;
              
        $strSQL = "SELECT * FROM cadastro ";
        $strSQL .= "WHERE Curso = '$pCurso' ";
        $strSQL .= "AND DtCadastro >= '$pDataIni' AND DtCadastro <= '$pDataFim' ";
        $strSQL .= "AND Turma = ''";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }
    
    function ListarTodasSolicitacaoInscricoes()
    {
        $ClsBD = new ConexaoBD;
        $strSQL = "SELECT * FROM cadastro";
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }
    
    function EfetivarMatricula($pTurma, $pDataMatricula, $pCpf, $pNip)
    {
        $ClsBD = new ConexaoBD;
        
        $strSQL = "UPDATE cadastro ";
        $strSQL .=  "SET Turma = '$pTurma', DtEfetivaMatricula = '$pDataMatricula' ";
        $strSQL .=  "WHERE CPF = '$pCpf' AND NIP = '$pNip'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
        return $Retorno;
    }
    
    function DesfazerMatricula($pTurma, $pCpf, $pNip)
    {
        $ClsBD = new ConexaoBD;
        
        $Nullable = NULL;
        
        $strSQL = "UPDATE cadastro ";
        $strSQL .=  "SET Turma = '', DtEfetivaMatricula = '$Nullable' ";
        $strSQL .=  "WHERE CPF = '$pCpf' AND NIP = '$pNip' AND Turma = '$pTurma'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
        return $Retorno;
    }
    
    function RecuperaDadosAluno($pTurma, $pCpf, $pNip)
    {
        $ClsBD = new ConexaoBD;
        $strSQL = "SELECT * FROM cadastro WHERE CPF = '$pCpf' AND NIP = '$pNip' AND Turma = '$pTurma'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }
    
    function RecuperaDadosMatricula($pCurso, $pCpf, $pNip)
    {
        $ClsBD = new ConexaoBD;
        $strSQL = "SELECT * FROM cadastro WHERE CPF = '$pCpf' AND NIP = '$pNip' AND Curso = '$pCurso'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }    
    
    function ListarMatriculadosCursoTurma($pCurso, $pTurma, $pNome, $pCPF)
    {
        $ClsBD = new ConexaoBD;
               
        $strSQL = "SELECT * FROM cadastro ";
        if($pCurso === "0" || $pCurso === "" || $pCurso === null)
            $strSQL .= "WHERE Curso != '' ";
        else
            $strSQL .= "WHERE Curso = '$pCurso' ";
        
        if($pTurma === "0" || $pTurma === "" || $pTurma === "null")
            $strSQL .= "AND Turma != ''";
        else
            $strSQL .= "AND Turma = '$pTurma'";
        if($pNome != "")
            $strSQL .= "AND Nome LIKE '%$pNome%'";
        if($pCPF != "")
            $strSQL .= "AND CPF = '$pCPF'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }

    function VerificarPresenca($pCurso, $pTurma, $pCpf, $pNip, $pData)
    {
        $ClsBD = new ConexaoBD;

        $strSQL = "SELECT * FROM presenca ";
        $strSQL .= "WHERE Curso = '$pCurso' ";
        $strSQL .= "AND Turma = '$pTurma' ";
        $strSQL .= "AND CPF = '$pCpf' ";
        $strSQL .= "AND NIP = '$pNip' ";
        $strSQL .= "AND Data = '$pData'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }
    
    function IniciarCursoTurma($pCurso, $pTurma)
    {
        $ClsBD = new ConexaoBD;
        
        $strSQL = "SELECT * FROM cadastro ";
        $strSQL .=  "WHERE Curso = '$pCurso' AND Turma = '$pTurma' ";
        $strSQL .=  "AND DtIniCurso <> '0000-00-00'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        if(is_resource($Retorno))
            if(mysql_num_rows($Retorno) > 0)
                $Retorno = "Turma já Iniciada!";
            else
            {
            $CurDate = date("Y-m-d");

            $strSQL = "UPDATE cadastro ";
            $strSQL .=  "SET DtIniCurso = '$CurDate' ";
            $strSQL .=  "WHERE Curso = '$pCurso' AND Turma = '$pTurma'";
            $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
            if(!is_numeric($Retorno))
                $Retorno = "Turma Não Iniciada!";
            else
                $Retorno = "Turma Iniciada com Sucesso!";
        }
        return $Retorno;
    }
    
    function FinalizarCursoTurma($pCurso, $pTurma)
    {
        $ClsBD = new ConexaoBD;

        $strSQL = "SELECT * FROM cadastro ";
        $strSQL .=  "WHERE Curso = '$pCurso' AND Turma = '$pTurma' ";
        $strSQL .=  "AND DtFimCurso <> '0000-00-00'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        if(is_resource($Retorno))
            if(mysql_num_rows($Retorno) > 0)
                $Retorno = "Turma já Finalizada!";
        else
        {
            $CurDate = date("Y-m-d");
            $strSQL = "UPDATE cadastro ";
            $strSQL .=  "SET DtFimCurso = '$CurDate' ";
            $strSQL .=  "WHERE Curso = '$pCurso' AND Turma = '$pTurma'";
            $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
            if(is_numeric($Retorno))
                $Retorno = "Turma Não Finalizada!";
            else
                $Retorno = "Turma Finalizada com Sucesso!";
        }
        return $Retorno;
    }
    
    function SalvarPresenca($pCurso, $pTurma, $pTurno, $pCpf, $pNip, $pStatus, $pData)
    {
        $ClsBD = new ConexaoBD;
        $Teste = $this->VerificarPresenca($pCurso, $pTurma, $pCpf, $pNip, $pData);
        if(mysql_num_rows($Teste) > 0)
        {
            $strSQL = "UPDATE presenca ";
            if($pTurno === "M")
                $strSQL .= "SET Manha = '$pStatus' ";
            else
                $strSQL .= "SET Tarde = '$pStatus' ";
                
            $strSQL .= "WHERE Curso = '$pCurso' ";
            $strSQL .= "AND Turma = '$pTurma' ";
            $strSQL .= "AND CPF = '$pCpf' ";
            $strSQL .= "AND NIP = '$pNip' ";
            $strSQL .= "AND Data = '$pData'";
            $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
            return $Retorno;
        }
        else
        {
            if($pTurno === "M")
                $strSQL = "INSERT INTO presenca(Curso, Turma, CPF, NIP, Manha, Data)  VALUES(";
            else
                $strSQL = "INSERT INTO presenca(Curso, Turma, CPF, NIP, Tarde, Data)  VALUES(";
            
            $strSQL .= "'$pCurso', ";
            $strSQL .= "'$pTurma', ";
            $strSQL .= "'$pCpf', ";
            $strSQL .= "'$pNip', ";
            $strSQL .= "'$pStatus', ";
            $strSQL .= "'$pData')";
            $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
            return $Retorno;
        }
    }
    
    function VerificaTurmaIniciada($pCurso, $pTurma)
    {
        $ClsBD = new ConexaoBD;
               
        $strSQL = "SELECT * FROM cadastro ";
        $strSQL .= "WHERE Curso = '$pCurso' ";
        $strSQL .= "AND Turma = '$pTurma'";
        $strSQL .= "AND DtIniCurso <> '0000-00-00'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        if(is_resource($Retorno))
            if(mysql_num_rows($Retorno) == 0)
                $Retorno = false;

            else
                $Retorno = true;

        return $Retorno;
    }
    
    function VerificaTurmaFinalizada($pCurso, $pTurma)
    {
        $ClsBD = new ConexaoBD;
               
        $strSQL = "SELECT * FROM cadastro ";
        $strSQL .= "WHERE Curso = '$pCurso' ";
        $strSQL .= "AND Turma = '$pTurma'";
        $strSQL .= "AND DtFimCurso <> '0000-00-00'";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        if(is_resource($Retorno))
            if(mysql_num_rows($Retorno) == 0)
                $Retorno = false;
            else
                $Retorno = true;

        return $Retorno;
    }
    
    function ListarPresencaCursoTurma_Cabec($pCurso, $pTurma)
    {
        $ClsBD = new ConexaoBD;

        $strSQL = "SELECT Distinct P.Data FROM cadastro C ";
        $strSQL .= "LEFT JOIN presenca P ON C.CPF = P.CPF AND C.Curso = P.Curso AND C.NIP = P.NIP AND C.Turma = P.Turma ";
        $strSQL .= "WHERE C.Curso = '$pCurso' ";
        $strSQL .= "AND C.Turma = '$pTurma' ";
        $strSQL .= "ORDER BY P.Data";      
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        
        if(is_resource($Retorno))
            if(mysql_num_rows($Retorno) == 0){
                $Retorno = false;}
        
        return $Retorno;
    }    
    
    function ListarPresencaCursoTurma($pCurso, $pTurma)
    {
        $ClsBD = new ConexaoBD;
               
        $strSQL = "SELECT C.Nome, C.Patente, C.NIP, C.CPF, P.Manha, P.Tarde FROM cadastro C ";
        $strSQL .= "LEFT JOIN presenca P ON C.CPF = P.CPF AND C.Curso = P.Curso AND C.NIP = P.NIP AND C.Turma = P.Turma ";
        $strSQL .= "WHERE C.Curso = '$pCurso' ";
        $strSQL .= "AND C.Turma = '$pTurma' ";
        $strSQL .= "ORDER BY C.Nome";
        
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");       
        return $Retorno;
    }
    
    function ConsultarHistoricoCursoTurma($pCurso, $pTurma, $pNome, $pCpf )
    {
        $ClsBD = new ConexaoBD;

        $strSQL = "SELECT C.Nome, C.EMail, (DateDiff(C.DtFimCurso, C.DtIniCurso)+1)*2 AS 'Total Aulas', ";
        $strSQL .= "Count((case when P.Manha = 'P' then 1 else NULL end)) + Count((case when P.Tarde = 'P' then 1 else NULL end)) AS 'Presenca', ";
        $strSQL .= "Count((case when P.Manha = 'F' then 1 else NULL end)) + Count((case when P.Tarde = 'F' then 1 else NULL end)) AS 'Falta', ";
        $strSQL .= "((Count((case when P.Manha = 'P' then 1 else NULL end)) + Count((case when P.Tarde = 'P' then 1 else NULL end)))*100) / ((DateDiff(C.DtFimCurso, C.DtIniCurso)+1)*2) AS '%', " ;
        $strSQL .= "C.CPF, C.NIP, DtAprovacao ";
        $strSQL .= "FROM cadastro C ";
        $strSQL .= "LEFT JOIN presenca P ON C.CPF = P.CPF AND C.Curso = P.Curso AND C.NIP = P.NIP AND C.Turma = P.Turma ";
        $strSQL .= "WHERE C.Curso = '$pCurso' ";
        $strSQL .= "AND C.Turma = '$pTurma' ";
        
        if($pNome != "")
            $strSQL .= "AND Nome LIKE '%$pNome%'";
        if($pCpf != "")
            $strSQL .= "AND CPF = '$pCpf'";
        
        $strSQL .= "GROUP BY C.Nome, C.EMail ";
        $strSQL .= "ORDER BY C.Nome";
               
        $Retorno = $ClsBD->ExecutarQry($strSQL, "S");
        return $Retorno;
    }
    
    function AprovarAluno($pCurso, $pTurma, $pCpf, $pNip, $pDtAprovacao)
    {
        $ClsBD = new ConexaoBD;
        
        $strSQL = "UPDATE cadastro ";
        $strSQL .=  "SET DtAprovacao = '$pDtAprovacao' ";
        $strSQL .=  "WHERE Curso = '$pCurso' AND Turma = '$pTurma' ";
        $strSQL .= "AND CPF = '$pCpf' AND NIP = '$pNip'";
        $Retorno = $ClsBD->ExecutarQry($strSQL, "U");
        if(!$Retorno)
        {
            $Retorno = "Alunos Selecionados Aprovados com Sucesso";
        }
        else
        {
            $Retorno = "Ocorreram Erros - ";
        }
        return $Retorno;
    }
    
    function ContarAlunosMatriculados($pCurso, $pTurma, $pTipo)
    {
        switch($pTipo)
        {
            case "A":
                break;
            case "M":
                break;
        }
    }
}
?>
